//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//
// (C) Copyright 2006 Marvell International Ltd.
// All Rights Reserved
//
/******************************************************************************
**
** INTEL CONFIDENTIAL
** Copyright 2003-2005 Intel Corporation All Rights Reserved.
**
** The source code contained or described herein and all documents
** related to the source code (Material) are owned by Intel Corporation
** or its suppliers or licensors.  Title to the Material remains with
** Intel Corporation or its suppliers and licensors. The Material contains
** trade secrets and proprietary and confidential information of Intel
** or its suppliers and licensors. The Material is protected by worldwide
** copyright and trade secret laws and treaty provisions. No part of the
** Material may be used, copied, reproduced, modified, published, uploaded,
** posted, transmitted, distributed, or disclosed in any way without Intel's
** prior express written permission.
**
** No license under any patent, copyright, trade secret or other intellectual
** property right is granted to or conferred upon you by disclosure or
** delivery of the Materials, either expressly, by implication, inducement,
** estoppel or otherwise. Any license under such intellectual property rights
** must be express and approved by Intel in writing.
**
**  FILENAME: mem.cpp
**
**
******************************************************************************/

#include <windows.h>
#include <ceddk.h>
#include <ddkreg.h>
#include "image_cfg.h"

extern "C" PVOID KitlGetDMABuffer(DWORD size,  PHYSICAL_ADDRESS *PA);

PVOID KitlGetDMABuffer(DWORD size,  PHYSICAL_ADDRESS *PA)
{
	static DWORD StartAddess=IMAGE_KERNEL_USB_KITL_DMA_BUFFER_START_UA;

	DWORD ret=StartAddess;

	memset(PA,0,sizeof(PHYSICAL_ADDRESS));
	
	PA->LowPart = ret-IMAGE_KERNEL_USB_KITL_DMA_BUFFER_START_UA+IMAGE_KERNEL_USB_KITL_DMA_BUFFER_START_PA;
		
	StartAddess+=size;

	if(StartAddess&0xFF)
	{
		StartAddess&=~0xFF;
		StartAddess+=0x100;		
	}
		
	
	return (PVOID)ret;	
	
}

